update_combo_box (user_data);
}
+static void
+restore_inactive_selection (GtkFileChooserButton *button)
+{
+ GtkFileChooserButtonPrivate *priv = button->priv;
+
+ if (priv->selection_while_inactive)
+ gtk_file_chooser_select_file (GTK_FILE_CHOOSER (priv->dialog), priv->selection_while_inactive, NULL);
+ else
+ gtk_file_chooser_unselect_all (GTK_FILE_CHOOSER (priv->dialog));
+}
+
/* Dialog */
static void
open_dialog (GtkFileChooserButton *button)
g_signal_handler_block (priv->dialog,
priv->dialog_selection_changed_id);
- gtk_file_chooser_select_file (GTK_FILE_CHOOSER (priv->dialog), priv->selection_while_inactive, NULL);
+ restore_inactive_selection (button);
priv->active = TRUE;
}
update_label_and_image (button);
update_combo_box (button);
}
- else if (priv->selection_while_inactive)
+ else
{
- gtk_file_chooser_select_file (GTK_FILE_CHOOSER (dialog), priv->selection_while_inactive, NULL);
+ restore_inactive_selection (button);
}
- else
- gtk_file_chooser_unselect_all (GTK_FILE_CHOOSER (dialog));
if (priv->active)
{